package com.bit.blog.common.util;

import org.springframework.util.DigestUtils;
import org.springframework.util.StringUtils;

import java.nio.charset.StandardCharsets;
import java.util.UUID;

public class SecurityUtil {
    //1,进行对数据进行加密操作；
    //2，执行完毕后进行返回密文：叶子+MD5(叶子+明文);
    public static String encrypt(String password){
        String salt= UUID.randomUUID().toString().replace("-","");
        String securityPassword= DigestUtils.md5DigestAsHex((salt+password).getBytes(StandardCharsets.UTF_8));
        return salt+securityPassword;
    }
    //进行验证输入密码的正确性；
    public static boolean verify(String inputPassword,String sqlPassword){
        if(!StringUtils.hasLength(inputPassword)){
            return false;
        }
        if(sqlPassword==null || sqlPassword.length()!=64){
            return false;
        }
        String salt=sqlPassword.substring(0,32);
        String securityPassword=DigestUtils.md5DigestAsHex((salt+inputPassword).getBytes(StandardCharsets.UTF_8));
        return sqlPassword.equals(salt+securityPassword);
    }
    //进行验证一下上述两个方法的实现的正确性；
//    public static void main(String[] args){
//        String encrypt=encrypt("123456");
//        boolean verify=verify("123456",encrypt);
//        System.out.println(verify);
//    }

}
